require_relative '../../../spec_helper'

ruby_version_is ""..."4.0" do
  require 'cgi'
  require "stringio"

  describe "CGI::QueryExtension#multipart?" do
    before :each do
      @old_stdin = $stdin

      @old_request_method = ENV['REQUEST_METHOD']
      @old_content_type = ENV['CONTENT_TYPE']
      @old_content_length = ENV['CONTENT_LENGTH']

      ENV['REQUEST_METHOD'] = "POST"
      ENV["CONTENT_TYPE"] = "multipart/form-data; boundary=---------------------------1137522503144128232716531729"
      ENV["CONTENT_LENGTH"] = "222"

      $stdin = StringIO.new <<-EOS
-----------------------------1137522503144128232716531729\r
Content-Disposition: form-data; name="file"; filename=""\r
Content-Type: application/octet-stream\r
\r
\r
-----------------------------1137522503144128232716531729--\r
EOS

      @cgi = CGI.new
    end

    after :each do
      $stdin = @old_stdin

      ENV['REQUEST_METHOD'] = @old_request_method
      ENV['CONTENT_TYPE'] = @old_content_type
      ENV['CONTENT_LENGTH'] = @old_content_length
    end

    it "returns true if the current Request is a multipart request" do
      @cgi.multipart?.should be_true
    end
  end
end
